{DCC Warning} W1036 Variable '$frame' might not have been initialized?

Posted by Gad D Lord on Stack Overflow See other posts from Stack Overflow or by Gad D Lord
Published on 2011-11-19T22:43:06Z Indexed on 2011/11/20 9:53 UTC
Read the original article Hit count: 280

Any ideas why I get this warning in Delphi XE:

[DCC Warning] Form1.pas(250): W1036 Variable '$frame' might not have been initialized

procedure TForm1.Action1Execute(Sender: TObject);
var
  Thread: TThread;
begin
  ...
 Thread := TThread.CreateAnonymousThread(
   procedure{Anonymos}()

     procedure ShowLoading(const Show: Boolean);
     begin  /// <-------------            WARNING IS GIVEN FOR THIS LINE (line number 250)
       Thread.Synchronize(Thread,
          procedure{Anonymous}()
          begin
            ...
            Button1.Enabled := not Show;
            ...
          end
        );
     end;

  var
    i: Integer;
  begin
    ShowLoading(true);
    try
      Thread.Synchronize(Thread,
        procedure{Anonymous}()
        begin
          ... // some UI updates
        end
      Thread.Synchronize(Thread,
        procedure{Anonymous}()
        begin
          ... // some UI updates
        end
      );
    finally
      ShowLoading(false);
    end;
  end
  ).NameThread('Some Thread Name');
  Thread.Start;
end;

I do not have anywhere in my code a variable names frame nor $frame. I am even not sure how $frame with $ sign can be a valid identifier.

Smells like compiler magic to me.

PS: Of course the real life xosw is having other than Form1, Button1, Action1 names.

© Stack Overflow or respective owner

Related posts about multithreading

Related posts about delphi